---
title: "Abel Torres Espin"
output:
flexdashboard::flex_dashboard:
theme:
version: 3
social: [ "menu" ]
source_code: embed
css: webFlex.css
editor_options:
chunk_output_type: console
---
```{r setup, include=FALSE}
library(flexdashboard)
library(easyPubMed) #API connection with pubmed
library(tidyverse) #To facilitate some data wrangling
library(DT) # for table html formatting
```
Home
=====================================
:::{.intro .justify}
Abel Torres Espin is an assistant adjunct professor at the Brain and Spinal Injury Center, Department of Neurosurgery, at the University of California, San Francisco.
His current research focuses on the intersection between neurotrauma research and data science. He applies, explores and develops data science methods in traumatic injuries affecting the brain and the spinal cord to increase reproducibility, accelerate translation and augment evidence-based medical practice. These methods include machine learning and intelligence analytics, open science, data sharing, data infrastructures, data mining and data visualization, among others.
He uses the programming language R as a primary tool, and Python from time to time.
:::
:::{.footnote .justify}
Abel.torresespin@ucsf.edu || [GitHub](https://github.com/ATEspin) || [UCSF profile](https://profiles.ucsf.edu/abel.torresespin) || [Google Scholar](https://scholar.google.com/citations?user=c7vjfOUAAAAJ&hl=en)
:::
Publications
=====================================
```{r}
## This creates a search that gets saved in NML servers with specific ids, that makes the query reusable without the need to search again.
my_entrez_id <- get_pubmed_ids('Abel Torres-Espin')
## This fetches the pubmed info for each paper returned as list of string character vector
track_txt <- fetch_pubmed_data(my_entrez_id, format = "medline")
## Creates an index of where the papers start in the track_txt string
paper_list_index<-c(which(track_txt==""),length(track_txt))
## Extract papers by list
paper_list<-list()
for(i in 1:(length(paper_list_index)-1)){
paper_list[[i]]<-track_txt[seq(paper_list_index[i],paper_list_index[i+1]-1)]
}
## List of PMIDs using the PMID tag
PMC_list<-track_txt[str_detect(track_txt, "^PMID- ")]
PMC_list<-unique(str_remove_all(PMC_list, '^PMID- '))
### build the dataframe
extract<-list()
for (p in 1:length(paper_list)){
i<-paper_list[[p]]
## Author names
author_names<-i[str_detect(i, "^AU ")]
author_names<-paste0(str_remove_all(author_names, "^AU - "), collapse="; ")
## PMIDs
PMID<-i[str_detect(i, "^PMID- ")]
PMID<-str_remove_all(PMID, '^PMID- ')
## Date publication
date_p<-i[str_detect(i, "^DP ")]
date_p<-str_remove_all(date_p, '^DP - ')
## year
year<-str_extract(date_p,"[[:digit:]]+")
## Title
title<-i[str_detect(i, "^TI ")]
title<-str_remove_all(title, '^TI - ')
## Publication info
pub_info<-i[str_detect(i, "^SO ")]
pub_info<-str_remove_all(pub_info, '^SO - ')
## DOI
lid<-i[str_detect(i, "^LID ")]
lid<-str_remove_all(lid, '^LID - ')
if (length(lid)>0){
if (str_detect(lid, "doi")){
lid<-str_remove_all(lid, ' .+')
lid<-paste0("https://doi.org/", lid)
}else{
lid<-NULL
}
}else{
lid<-NULL
}
## join all info in dataframe
extract[[p]]<-data.frame("Year" = ifelse(is_empty(year), "No year", year),
"Title" = ifelse(is_empty(title), "No title", title),
"Authors" = ifelse(is_empty(author_names),
"No names", author_names),
"Info" = ifelse(is_empty(pub_info), "No info", pub_info),
"PMID" = ifelse(is_empty(PMID), "No PMID", PMID),
"DOI" = ifelse(is_empty(lid), "No DOI", lid))
}
## Create the dataframe
pub_df<-do.call(rbind, extract)
```
```{r}
pub_df<-pub_df%>%select(-DOI)
datatable(pub_df)
```
Software
=====================================
:::{.mainText .justify}
`syndRomics`: an R package for reproducible analysis of disease space via principal components
[GitHub](https://github.com/ucsf-ferguson-lab/syndRomics)
**Citation**: Abel Torres-Espin, Austin Chou, J. Russell Huie, Nikos Kyritsis, Pavan Upadhyayula, and Adam R. Ferguson. Reproducible analysis of disease space via principal components using the novel R package syndRomics. https://doi.org/10.7554/eLife.61812
:::
***
:::{.mainText .justify}
`Neurite-J`: an ImageJ plug in for axonal growth analysis in organotypic cultures
[Download](https://imagejdocu.tudor.lu/plugin/analysis/neurite-j/start)
**Citation**: Torres-Espín A, Santos D, González-Pérez F, del Valle J, Navarro X. Neurite-J: An Image-J plug-in for axonal analisys in organotypic cultures. J Neurosci Meth 236:26–39
:::
:::{.footnote .justify}
Abel.torresespin@ucsf.edu || [GitHub](https://github.com/ATEspin) || [UCSF profile](https://profiles.ucsf.edu/abel.torresespin) || [Google Scholar](https://scholar.google.com/citations?user=c7vjfOUAAAAJ&hl=en)
:::
About
=====================================
:::{.mainText .justify}
Abel was born in Mataro, close to Barcelona, Spain. He studied biology at the Universitat de Barcelona from 2002 to 2007. In 2008 he started his PhD in the neuroscience program at the Universitat Autonoma de Barcelona under the supervision of Dr. Xavier Navarro, finishing his thesis entitled ‘Terapia celular para lesiones que afectan a la medula espinal’ (Cell therapy for injuries affecting the spinal cord). In 2014, Abel moved to Edmonton, Canada, for a postdoctoral position at the University of Alberta under the supervision of Dr. Karim Fouad. Here, he worked on the interaction between neuroinflammation and rehabilitative motor training after cervical spinal cord injury. Since November 2018, he have been working at the University of California San Francisco in a team led by Dr. Adam Ferguson, where they work on the application of data science to accelerate neurotrauma research and translation.
When Abel is not doing research or coding, he is visiting mountains, climbing or catching up with friends.
:::
:::{.footnote .justify}
Abel.torresespin@ucsf.edu || [GitHub](https://github.com/ATEspin) || [UCSF profile](https://profiles.ucsf.edu/abel.torresespin) || [Google Scholar](https://scholar.google.com/citations?user=c7vjfOUAAAAJ&hl=en)
:::
This website
=====================================
:::{.mainText .justify}
This website has been created in R, using Rmarkdown and the [flexdashboard](https://pkgs.rstudio.com/flexdashboard/) package. It is an attempt to produce a light weight academic webpage. Other options such as [blogdown](https://bookdown.org/yihui/blogdown/) are possible, and I recommend to explore them. After trying with several options, I decided using trying flexdashboard, which its primary use is for fast creation of dashboard in R. I found the multi-page layout and the incorporation of custom CSS code sufficient to produce this page. Some limitations of this light weight site is the difficulty to incorporate more dynamic content such as a blog.
**Publications as a table**: the publication section is presented as a table rather than the usual list. Using the [DT](https://rstudio.github.io/DT/) R package, and R interface to the JavaScript library DataTables, allows for extended functionalities such as search, sorting and pagination without having to add those externally, thus utilizing the html interactive capabilities. The table is automatically populated every knitting by querying PubMed using the [easyPubMed](https://cran.r-project.org/web/packages/easyPubMed/index.html) R package interfacing with PubMed API. You can see the source code using the navigation var (top right corner) or in [GitHub](https://github.com/ATEspin/ATEspin.github.io).
This makes very easy to update the page by updating the Rmarkdown, knitting and pushing to GitHub.
:::
:::{.footnote .justify}
Abel.torresespin@ucsf.edu || [GitHub](https://github.com/ATEspin) || [UCSF profile](https://profiles.ucsf.edu/abel.torresespin) || [Google Scholar](https://scholar.google.com/citations?user=c7vjfOUAAAAJ&hl=en)
:::